package com.cssy.yd.logic.util;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class MathUtil {
	
	public static MathUtil mathUtil = new MathUtil();
	
	/**
	 * @modify huang.xuming [2013-8-8]
	 */
	private MathUtil(){
		
	}
	
	/**
	 * 两数相减(num1 - num2)
	 * @param num1 
	 * @param num2
	 * @return 差值
	 */
	public double subtract(double num1 ,double num2){
		return (num1 - num2);
	}
	/**
	 * 两数相加(num1 + num2)
	 * @param num1 
	 * @param num2
	 * @return 和值
	 */
	public double addtract(double num1 ,double num2){
		return (num1 + num2);
	}
	
	/**
	 * 两数相乘(num1 * num2)
	 * @param num1
	 * @param num2
	 * @return
	 * @author huang.xuming [2013-8-8]
	 */
	public double multiply(double num1 ,double num2){
		return ((new BigDecimal(num1)).multiply(new BigDecimal(num2))).doubleValue();
	}
	
	/**
	 * 两数相除(num1 / num2)--除不尽时异常
	 * @param num1
	 * @param num2
	 * @return
	 * @author huang.xuming [2013-8-8]
	 */
	public double divide(double num1 ,double num2){
		return ((new BigDecimal(num1)).divide(new BigDecimal(num2))).doubleValue();
	}
	
	/**
	 * 两数相减(num1 - num2)
	 * @param num1 
	 * @param num2
	 * @return 差值
	 */
	public BigDecimal subtract(BigDecimal num1 ,BigDecimal num2){
		return num1.subtract(num2);
	}
	/**
	 * 两数相加(num1 + num2)
	 * @param num1 
	 * @param num2
	 * @return 和值
	 */
	public BigDecimal addtract(BigDecimal num1 ,BigDecimal num2){
		return num1.add(num2);
	}
	
	/**
	 * 两数相乘(num1 * num2)
	 * @param num1
	 * @param num2
	 * @return
	 */
	public BigDecimal multiply(BigDecimal num1 ,BigDecimal num2){
		return num1.multiply(num2);
	}
	
	/**
	 * 两数相除(num1 / num2)--除不尽时异常
	 * @param num1
	 * @param num2
	 * @return
	 */
	public BigDecimal divide(BigDecimal num1 ,BigDecimal num2){
		return num1.divide(num2,4, RoundingMode.HALF_DOWN);
	}
}
